/*
 * (C)2012 Exlu Corporation. All rights reserved.
 * 注意事項   :
 */
package cn.exlu.wea.field.calculate;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 日期计算类
 * @author Mark 
 * @version 1.0.1.1
 * @CreateTime 2012-2-26
 * @UpdateTime 2012-01-06
 */
public final class LpCalcDateUtil {

    /**
     * 增加年数
     * @param strDate 日期字段
     * @param pattern 格式
     * @param year 年数
     * @return 增加年数后的日期
     */
    public static String addYear(String strDate, String pattern, int year) {
        Calendar calendar = getCalendar(strDate, pattern);
        calendar.add(Calendar.YEAR, year);
        return getDateString(calendar.getTime(), pattern);
    }

    /**
     * 增加月数
     * @param strDate 日期字段
     * @param pattern 格式
     * @param month 月数
     * @return 增加月数后的日期
     */
    public static String addMonth(String strDate, String pattern,int month){
        Calendar calendar = getCalendar(strDate,pattern);
        calendar.add(Calendar.MONTH, month);
        return getDateString(calendar.getTime(),pattern);
    }
 
    /**
     * 增加天数
     * @param strDate 日期字段
     * @param pattern 格式
     * @param day 天数
     * @return 增加天数后的日期
     */
    public static String addDay(String strDate,String pattern,int day){
        Calendar calendar = getCalendar(strDate,pattern);
        calendar.add(Calendar.DAY_OF_MONTH, day);
        return getDateString(calendar.getTime(),pattern);
    }

    /**
     * 返回一个Calendar类型
     * @param strDate
     * @return
     */
    private static Calendar getCalendar(String strDate,String pattern){
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat(pattern);
        Calendar calender=Calendar.getInstance();
        try {
            calender.setTime(simpleDateFormat.parse(strDate));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return calender;
    }

    /**
     * 将日期转换成字符串类型
     * @param date 日期
     * @return 日期字符串
     */
    private static String getDateString(Date date,String pattern){
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat(pattern);
        return simpleDateFormat.format(date);
    }

}
